<?php

/*
 * Author: Davide Dal Bosco
 * Creation date: 09/01/2014
 */

/*
 * Controllore del login al sistema
 *
 */

class Utente extends CI_Controller {
	
	
	function __construct() {
		
        parent::__construct();
      	$this->load->model('login/utente_model');
	  	$this->load->helper(array('url','form','html'));
	  	
    }
   
  function index() {

	    redirect('login/utente/login');
  	
  }
  	
  	
  function login() {
  	
        //Controllo se c'è una sessione attiva
        if( !$this->session->userdata('logged_in')) {
        	
            $this->load->view('header');
            $this->load->view('/login/login');
            $this->load->view('footer');
        }
        
        else {
            
            redirect('login/utente/main');
        }
        
  }
    
   function autenticazione() {
   	
        //Carico la libreria di encryption
        $this->load->library('encrypt');

        //Prendo i dati dal form e li filtro con XSSfilter per sicurezza
        $user = $this->input->post('user_name', true);
        $password = $this->input->post('user_pass', true);

        //Controllo che le informazioni di login siano state inviate correttamente
        if($user === '' OR $password === '') {
            $this->session->set_flashdata('message', 'Inserire tutti i campi richiesti');
            redirect('login/utente/login');
        }

        //Effettuo la query per cercare l'utente
        $query = $this->utente_model->cerca_utente($user);
        //Se l'utente esiste
        if ($query->num_rows() > 0) {
 			$row = $query->row_array();


/*** UTENTE ATTIVO ***/
/*
            //Controllo che l'utente sia attivo
            if(!$this->utente_model->is_active($user)){
                $this->session->set_flashdata('message', 'L\'utente inserito non è attivo');
                redirect('login/utente/login');
            }
*/

            //Controllo la correttezza della password
            if($this->encrypt->sha1($password) != $row['password']) {
                $this->session->set_flashdata('message', 'Username e/o password errati');
                redirect('login/utente/login');
            }

            $redirect_url = 'login/utente/main';
            

            //Se esiste un campo redirect url salvato in sessione precedente allora lo sostituisco al default
            if ($this->session->userdata('redirect_url'))
                $redirect_url = $this->session->userdata('redirect_url');



/*** SCADENZA PASSWORD ***/
/*
            //Controllo se la password è scaduta
            $expiry = 0;//$this->utente_model->check_expiry($user);
            if ($expiry)
            {
                $this->load->view('login/header', array('page_title' => "Password scaduta",
                'link_attivo' => "login"
                ));
                $this->load->view('login/password_expiration');
                $this->load->view('login/footer');
            }
*/
            else {

	      // NB: l'e-commerce ha bisogno che la sessione venga preservata

                //Distruggo vecchie sessioni
                //$this->session->sess_destroy();

                //Creo una nuova sessione
                //$this->session->sess_create();

                //Inserisco il campo mail
                $this->session->set_userdata('mail',$user);

                //Metto logged_in a true
                $this->session->set_userdata('logged_in', true);
                
             
                //Inserisco i dati dell'ultimo login
                $this->utente_model->set_last_login($user);

                //Autenticazione completata con successo
                redirect($redirect_url);

            }
        }
        else {
            //Utente non corretto
            $this->session->set_flashdata('message', 'email e/o password errati');
            redirect('login/utente/login');
        }
    }
    
    function logout() {
    	
        //Distruggo la sessione
        $this->session->sess_destroy();
        //Redirect al Login
        redirect('login/utente/login');
    }
    	
	function main() {
		
		//Controllo che l'utente sia autenticato
        check_login();
        
        $mail = $this->session->userdata('mail');
        
        // Recupero la tipologia di utente che è entrato nel sistema
        $tipo_utente = $this->utente_model->tipo_utente($mail);
        
        // A seconda del tipo di utente, carico un messaggio diverso
        $messaggio = "";
        switch($tipo_utente){
            case 1:
            	$messaggio = "Sono un cittadino di livello 1";
            	break;
            case 2:
            	$messaggio = "Sono un cittadino di livello 2";
            	break;
            case 3:
            	$messaggio = "Sono un manutentore";
            	break;
            case 4:
            	$messaggio = "Sono un cittadino e manutentore";
            	break;
        }
            	
        $this->load->view('header');
        $this->load->view('login/main',array('messaggio' => $messaggio));
        $this->load->view('footer');

            	
        
        
       
	}
}
